home *** CD-ROM | disk | FTP | other *** search
- #include <stdio.h>
- #include <stdlib.h>
- #include <string.h>
- #include <unistd.h>
-
-
- char *ag_parse(char *output,char *arg, int type)
- {
- char *input,variable[256],value[256],blank[256];
- char num[6];
- int a=0,b=0,c;
- for (a=0; a<256; a++) {
- value[a]=0;
- blank[a]=0;
- }
- a=0;
- input=getenv("QUERY_STRING");
- while (b<strlen(input)) {
- strcpy(variable,"");
- while ((input[b]!='=') && (b<strlen(input))) {
- variable[a]=input[b];
- a++;
- b++;
- }
- variable[a]=0;
- a=0;
- b++;
- if (type!=1) {
- strcpy(value,"'");
- a=1;
- }
- while ((input[b]!='&') && (b<strlen(input))) {
- if (input[b]=='+') value[a]=' ';
- else if (input[b]=='%') {
- c=0;
- b++;
- while((c<6)&&(input[b]>='0')&&(input[b]<='F')) {
- num[c]=input[b];
- c++;
- b++;
- }
- num[c]=0;
- value[a]=(char) strtol(num,(char **)NULL,16);
- b--;
- }
- else value[a]=input[b];
- if (value[a]=='\'') value[a]='`';
- a++;
- b++;
- }
- if (type!=1) {
- value[a]='\'';
- value[a+1]=0;
- }
- else value[a]=0;
- a=0;
- b++;
- if (strcmp(arg,variable)==0) {
- if (strlen(value)==0) strcpy(output,blank);
- else strcpy(output,value);
- return(output);
- }
- }
- strcpy(output,blank);
- return(output);
- }
-
- char *ag_encode(char* output, char *inp1)
- {
- char input[256];
- int a;
- strcpy(input,inp1);
- for (a=0; a<strlen(input); a++) {
- if (input[a]==' ') output[a]='+';
- else output[a]=input[a];
- }
- output[a]=0;
- return(output);
- }
-